home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / comm / bbs / Cit_Util_8B13.lha / Citadel_cimr.lha / Process_Mail.rx < prev    next >
Text File  |  1997-07-31  |  5KB  |  219 lines

  1. /**
  2.   Citadel Email Network Processing V 1.00
  3.   Requirements:
  4.    0) ARexx
  5.    1) Miami installed
  6.    2) Citadel and Email Tools installed
  7.       a) MSGOUT
  8.       b) SAVE_FILE
  9.    3) YAM installed, version 1.3.4 required
  10.    4) This script must run from the Citadel Home Area
  11.  
  12.   Operation:
  13.     Citadel is shutdown.
  14.     YAM is started if it is not already running.
  15.     Miami is started if it is not already running
  16.     Miami is brought online, up to 5 attempts are made to
  17.     go online.  This means that if you configure Miami to
  18.     dial 2 numbers, 10 times each, it will do this 5 times
  19.     (dial out 100 times to connect) before giving up.  Being
  20.     online is not a requirement for "sending", we queue up
  21.     the mail for later and it will go out the next time.
  22.     MSGOUT is used to create a network packet which is then
  23.     compressed.  Then using YAM AREXX commands of MAILWRITE,
  24.     SETFOLDER, WRITESUBJECT, and WRITEATTACH, the mail message
  25.     is placed in the outgoing folder.  The mail is queued
  26.     so that if we are not online for some reason, it will be
  27.     done anyway.
  28.  
  29.     Next, Mail is gathered from the ISP via YAM and then
  30.     filtered.  Filtering saves a little work by putting all the
  31.     Email Network Packets into a directory, the CIMR tool
  32.     is used in the script "mail.script" to pull out the
  33.     attached file so that MSGADD can be used to enter the
  34.     messages into Citadel.
  35.  
  36.     The last part is cleanup, close the windows, go offline
  37.     and restart Citadel.
  38. */
  39. say "Email Networking Started - " DATE('W') "," DATE('N') "," TIME('N')
  40. call TIME('R')
  41.  
  42. call addlib('rexxsupport.library',0,-30,0)
  43.  
  44. /**
  45.  Citadel Shutdown
  46. **/
  47. say "Shutting down Citadel if needed"
  48. OPTIONS RESULTS
  49. IF show('P','Citadel_68K') then DO
  50.    say "...Attempting Citadel shutdown"
  51.    ADDRESS "Citadel_68K"
  52.    "exit 1"
  53. END
  54. say "Done with Citadel shutdown"
  55. call delay(100)
  56. /**
  57.  YAM Startup
  58. **/
  59. say "YAM Startup if needed"
  60. if ~show('P','YAM') then do
  61.     say "...Attempting to startup YAM"
  62.     address command 'run yam:yam nocheck'
  63.     call delay(100)
  64.     address command 'waitforport YAM'
  65.     if ~show('P','YAM') then do
  66.         say "......YAM startup failed!"
  67.         exit
  68.     end
  69. end
  70.  
  71. /**
  72.   Miami Startup
  73. **/
  74. say "Miami startup if needed"
  75. if ~show('P','MIAMI.1') then do
  76.     say "...Starting up Miami"
  77.     address command 'run miami:miami'
  78.     call delay(100)
  79.     address command 'waitforport MIAMI.1'
  80.     if ~show('P','MIAMI.1') then do
  81.         say "......Couldn't run MIAMI,  Aborting!"
  82.         exit
  83.     end
  84. end
  85.  
  86. /**
  87.   Create a network packet
  88. **/
  89. say "Creating a network packet for Kronos"
  90. address command
  91. 'wait 3 sec'
  92. 'failat 100'
  93. 'delete amiga.zip amiga'
  94. 'msgout "Kronos" amiga'
  95. 'zip -q amiga.zip amiga'
  96. 'save_file amiga cit:net/net_save'
  97. email    = 'cit-amiga@kronos.incentre.net'
  98. filename = 'cit:amiga.zip'
  99.  
  100. /**
  101.   Now, we send a network packet
  102. **/
  103. say "Queueing the packet for KRONOS"
  104. address 'YAM'
  105. setfolder 1
  106. MailWrite
  107. WriteMailTo email
  108. 'WriteSubject "The Amiga Zone US (609) 953-8159"'
  109. WriteAttach filename '"Email_Network_Packet" "UU" "application/octet-stream"'
  110. WriteQueue
  111. address command
  112. 'delete cit:amiga.zip'
  113.  
  114. /**
  115.   Create a network packet for UNCENSORED
  116. **/
  117. say "Creating the packet for UNCENSORED"
  118. address command
  119. 'failat 100'
  120. 'delete uncensored.zip uncensored'
  121. 'msgout "uncensored" uncensored'
  122. email = 'cit86net@uncnsrd.mt-kisco.ny.us'
  123. filename = 'cit:uncensored'
  124.  
  125. /**
  126.   Now, we send up a network packet
  127. **/
  128. say "Queueing the packet for UNCENSORED"
  129. address 'YAM'
  130. setfolder 1
  131. MailWrite
  132. WriteMailTo email
  133. 'WriteSubject "US6099538159"'
  134. WriteAttach filename '"Email_Network_Packet" "UU" "application/octet-stream"'
  135. WriteQueue
  136. address command
  137. 'save_file uncensored cit:net/net_save'
  138.  
  139. /**
  140.   Finished, with networking
  141. **/
  142.  
  143. say "Make sure we are online"
  144. address 'MIAMI.1'           /* Miami is up and running now...*/
  145. 'HIDE'
  146. 'ISONLINE'
  147. if rc = 0 then do
  148.    say "... Not online, attempting to connect"
  149.    do i=0 to 5
  150.      'ONLINE'        /* Go online */
  151.      'ISONLINE'      /* Did it succeed ? */
  152.      if rc = 1 then leave /* exit loop if online */
  153.    end
  154.    'ISONLINE'
  155.    if rc = 0 then do
  156.      say "......Unable to get online, Mail will be processed next time!"
  157.    end
  158. end
  159.  
  160. /**
  161.   Now, get standard mail & filter it
  162. **/
  163. Address YAM
  164. MailCheck     /* Get new mail */
  165.  
  166. if rc = -1 then
  167.   say "YAM: connection to mail server has failed, could not get new mail"
  168.  
  169. MailFilter    /* Filter, it   */
  170. MailSendAll   /* Send queue   */
  171. if rc = -1 then
  172.   say "YAM: connection to mail server has failed, could not send new mail"
  173.  
  174. /**
  175.  process the mail recieved, Note: mail.script is dependant
  176.  on YAM, and the YAM characteristic of Archives.  We are directly
  177.  accessing the mail files and deleting them in the script after
  178.  processing the attached files.  Possibly, with Version 2.00 this
  179.  will become ARexx, it would be alot cleaner.
  180. **/
  181.  
  182. address command
  183. 'execute cit:mail.script'
  184. address YAM
  185. setfolder 0   /* select the folder and update the index */
  186. MailUpdate
  187. setfolder 1
  188. MailUpdate
  189. setfolder 2
  190. MailUpdate
  191. setfolder 3
  192. MailUpdate
  193. setfolder 4
  194. MailUpdate
  195. setfolder 5
  196. MailUpdate
  197. setfolder 6
  198. MailUpdate
  199. setfolder 7
  200. MailUpdate
  201. setfolder 8
  202. MailUpdate
  203. Hide          /* close the window   */
  204.  
  205. /**
  206.   Now go offline with Miami and restart Citadel
  207.   We leave YAM and Miami running.
  208. **/
  209. address 'MIAMI.1'
  210. 'OFFLINE'
  211. HIDE
  212.  
  213. /**
  214.   Finished
  215. **/
  216. say "Elapsed time:" TIME('E')
  217. say "Email Networking completed - " DATE('W') "," DATE('N') "," TIME('N')
  218. exit
  219.